/*
 * Created by SharpDevelop.
 * user: Robertux
 * Date: 18/03/2008
 * Time: 12:09
 * 
 * 
 */

using System;
using System.Drawing;
using System.Windows.Forms;
using System.Collections.Generic;
using DataLayer;
using Inventador;

namespace WinApp
{
	/// <summary>
	/// Description of frmUsuarios.
	/// </summary>
	public partial class frmUsuarios : Form
	{
		private BaseDatos bdatos;
		private List<Usuario> _misUsuarios;

		public frmUsuarios()
		{
			InitializeComponent();			
		}
		
		public frmUsuarios(BaseDatos bdatosExterna): this()
		{
			this.bdatos = bdatosExterna; 
			this._misUsuarios = Usuario.GetList(this.bdatos, "id != 0");
			this.RellenarGrid();
			this.gridManager1.AutoGenerarColumnas();
			if(this._misUsuarios.Count <= 1)
				this.button4.Enabled = false;
		}		
		
		public void RellenarGrid()
		{
			this.grdUsuarios.Rows.Clear();
			foreach(Usuario usr in this._misUsuarios)
				this.grdUsuarios.Rows.Add(new object[]{usr.Id, usr.Nombre});
		}
		
		void Button1Click(object sender, EventArgs e)
		{
			this.Close();
		}
		
		void Button2Click(object sender, EventArgs e)
		{
			frmAddUsr frmaddusuario = new frmAddUsr(this.bdatos);
			frmaddusuario.ShowDialog(this);
			frmaddusuario.Dispose();
			this._misUsuarios = Usuario.GetList(this.bdatos, "id != 0");
			this.RellenarGrid();
			if(this._misUsuarios.Count > 1)
				this.button4.Enabled = true;
		}
		
		void Button4Click(object sender, EventArgs e)
		{
			if(MessageBox.Show("Esta seguro que desea borrar el usuario seleccionado?","Confirmacion", MessageBoxButtons.YesNo) == DialogResult.Yes)
			{
				int actualRow = this.grdUsuarios.SelectedRows[0].Index;
				this._misUsuarios[actualRow].Delete(this.bdatos);
				this._misUsuarios.RemoveAt(actualRow);
				this.RellenarGrid();
				if(this._misUsuarios.Count <= 1)
					this.button4.Enabled = false;
			}
		}
		
		void Button3Click(object sender, EventArgs e)
		{
			frmCambiarClave frmClave = new frmCambiarClave(this.bdatos, this._misUsuarios[this.grdUsuarios.SelectedRows[0].Index].Id);
			frmClave.ShowDialog(this);
			frmClave.Dispose();
		}
	}
}
